﻿/* 
 * Program.cs		(Demo Application)
 * 
 * Copyright (c) 2009, Michael Schwarz (http://www.schwarz-interactive.de)
 *
 * Permission is hereby granted, free of charge, to any person
 * obtaining a copy of this software and associated documentation
 * files (the "Software"), to deal in the Software without
 * restriction, including without limitation the rights to use,
 * copy, modify, merge, publish, distribute, sublicense, and/or
 * sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 * 
 */
using System;
using System.Collections.Generic;
using System.Text;
using MFToolkit.Net.SSDP;
using MFToolkit.Net.Web;
using System.Threading;

namespace SsdpConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            SsdpServer ssdp = new SsdpServer();
            ssdp.Start();

            //foreach (string deviceUrl in ssdp.Discover())
            //    Console.WriteLine(deviceUrl);


            string udn = "uuid:" + Guid.NewGuid();
            ssdp.RegisterDevice(new SsdpDevice { Type = DeviceType.InternetGatewayDevice, Name = "MyControl" + DateTime.Now.Second, UDN = udn });

            Thread.Sleep(5000);

            Console.WriteLine("Searching for all devices...");
           
            foreach (string deviceUrl in ssdp.Discover())
                Console.WriteLine(deviceUrl);

            Console.WriteLine("Waiting for requests (M-SEARCH)...");
            Thread.Sleep(20 * 1000);

            ssdp.UnregisterDevice(udn);

            Console.WriteLine("Unregister done.");

            Console.ReadLine();
        }
    }
}
